/*
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * 
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * 
 * 2. The name "Antonio W. Lagnada" must not be used to endorse or promote
 * products derived from this software without prior written permission. For
 * written permission, please contact tony@lagnada.com
 * 
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANTONIO W.
 * LAGNADA OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *  
 */
package org.j2ee.example.web;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;

/**
 * HtmlButtons
 * 
 * @author Antonio W. Lagnada
 */
public class HtmlButtons {

    protected HttpServletRequest mRequest = null;

    //

    public HtmlButtons(HttpServletRequest request) {
        mRequest = request;
    }

    //

    public boolean pressed(String buttonParamName) {
        return (this.wasButtonPressed(buttonParamName, false) || this
                .wasImageButtonPressed(buttonParamName));
    }

    protected boolean wasImageButtonPressed(String buttonParamName) {
        return this.wasButtonPressed(buttonParamName, true);
    }

    protected boolean wasButtonPressed(String buttonParamName,
            boolean imageButton) {
        if (imageButton) {
            buttonParamName = buttonParamName + ".x";
        }

        String value = StringUtils.trimToEmpty(mRequest
                .getParameter(buttonParamName));
        if (value.length() > 0) {
            return true;
        }

        return false;
    }

    public boolean cancelButtonPressed() {
        return pressed("cancel") || pressed("cancelButton");
    }

    public boolean saveButtonPressed() {
        return pressed("save") || pressed("saveButton");
    }

    /**
     * SubmitButton pressed. Don't use "submit" because it conflicts with the javascript method form.submit();
     */
    public boolean submitButtonPressed() {
        return pressed("submitButton");
    }

    public boolean deleteButtonPressed() {
        return pressed("delete") || pressed("deleteButton");
    }

    public boolean finishButtonPressed() {
        return pressed("finish") || pressed("finishButton");
    }

    public boolean editButtonPressed() {
        return pressed("edit") || pressed("editButton");
    }

    public boolean doneButtonPressed() {
        return pressed("done") || pressed("doneButton");
    }

}
